package smallfrench.moteur.biblio.err;

import smallfrench.moteur.biblio.AClasse;
import smallfrench.moteur.biblio.AnnotationMembre;
import smallfrench.moteur.biblio.RChaine;
import smallfrench.moteur.interp.err.RException;

/**
 * Doit survenir lorsque l’on tente d’utiliser une variable inexistante.
 * 
 * @author antoine1023
 *
 */
public class ErreurVariableIndefinie extends AException {

	public static final AClasse CLASSE = AClasse.creer(
			ErreurVariableIndefinie.class);

	public final String nom;

	/**
	 * 
	 * @param nom Le nom de la variable
	 */
	public ErreurVariableIndefinie(String nom) {
		super("Variable indéfinie : " + nom);
		this.nom = nom;
	}

	/**
	 * 
	 * @param nom Le nom de la variable
	 */
	@AnnotationMembre
	public ErreurVariableIndefinie(RChaine nom) {
		this(nom.valeur);
	}

	public static RException nouvelleException(String nom) {
		return new RException(new ErreurVariableIndefinie(nom));
	}

}
